// =====================================================================================
// 
//       Filename:  erreurs.h
// 
//    Description:  Description des exceptions sur les graphes
// 
//        Version:  1.0
//        Created:  03/06/2009 19:59:40
//       Revision:  none
//       Compiler:  g++
// 
//         Author:  François Hissel (fh), francois.hissel@m4x.org
//        Company:  
// 
// =====================================================================================

#ifndef ERREURS_H_
#define ERREURS_H_

#include	<exception>
#include	<string>

using namespace std;

/**
 * \class IOException
 * \brief Exception soulevée lors d'une erreur d'entrée-sortie
 *
 * La classe permet de gérer les erreurs d'utilisation d'entrée-sortie diverses qui surviennent pendant l'exécution du programme.
 */
class IOException:public exception {
	public:
		/**
		 * \brief Ensemble des codes d'erreur possibles
		 *
		 * L'énumération rassemble les codes d'erreur qui peuvent être retournés pendant une opération d'entrée-sortie.
		 */
		enum Code {
			FILE_NOT_FOUND,	//!< Fichier introuvable
			FORMAT_ERROR	//!< Format de données incorrect
			} code;	//!< Code de l'erreur
		string message;	//!< Message décrivant l'erreur
		IOException(Code pcode):code(pcode) {}	//!< Constructeur standard, sans message d'erreur
		IOException(Code pcode,string pmessage):code(pcode),message(pmessage) {}	//!< Constructeur standard, avec message d'erreur
		~IOException() throw() {}	//!< Destructeur standard
		const char* what() const throw();	//!< Retourne la nature de l'erreur
};

#endif /* ERREURS_H_ */
